// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2007-9-15 18:54:02

// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   lo.java

package com.zelix;

import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

// Referenced classes of package com.zelix:
//            jc, nc, ko, tb, 
//            wb, zo, aq, lt, 
//            mu, nt, px, qy, 
//            w6

public class lo
{

    nt a[];
    Hashtable b;
    qy c;
    private static String z[];

    public lo(File afile[])
        throws wb
    {
        Vector vector;
        int i;
        boolean flag;
        flag = tb.b;
        super();
        vector = new Vector(Math.max(afile.length * 5, 10));
        i = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        Object obj;
        String as[];
        int l;
        if(!afile[i].exists() || !afile[i].isDirectory())
            break MISSING_BLOCK_LABEL_158;
        obj = afile[i].getAbsolutePath();
        as = afile[i].list(new jc());
        l = 0;
        if(!flag) goto _L4; else goto _L3
_L3:
        String s = obj + (((String) (obj)).endsWith(zo.a) ? "" : zo.a) + as[l];
        vector.addElement(new nc(s));
        l++;
_L4:
        if(l < as.length) goto _L3; else goto _L5
_L5:
        if(!flag)
            continue; /* Loop/switch isn't completed */
        obj = null;
        Enumeration enumeration;
        obj = new w6(afile[i]);
        enumeration = ((ZipFile) (obj)).entries();
        if(!flag) goto _L7; else goto _L6
_L6:
        ZipEntry zipentry = (ZipEntry)enumeration.nextElement();
        if(!zipentry.isDirectory() && zipentry.getName().endsWith(z[2]))
            vector.addElement(new nc(((ZipFile) (obj)), zipentry));
_L7:
        if(enumeration.hasMoreElements()) goto _L6; else goto _L8
_L8:
        continue; /* Loop/switch isn't completed */
        IOException ioexception;
        ioexception;
        new tb(ioexception.toString() + z[1] + afile[i]);
        i++;
_L2:
        if(i < afile.length) goto _L1; else goto _L9
_L9:
        int j;
        a = new nt[vector.size()];
        b = new Hashtable(px.a(vector.size()));
        c = new qy();
        j = 0;
        if(!flag) goto _L11; else goto _L10
_L10:
        nt nt1;
        mu amu[];
        int i1;
        nc nc1 = (nc)vector.elementAt(j);
        nt1 = ko.a(nc1);
        a[j] = nt1;
        b.put(nt1.j(), nt1);
        amu = nt1.w();
        i1 = 0;
        if(!flag) goto _L13; else goto _L12
_L12:
        c.b(amu[i1].N(), nt1);
        i1++;
_L13:
        if(i1 < amu.length) goto _L12; else goto _L14
_L14:
        j++;
_L11:
        if(j < vector.size()) goto _L10; else goto _L15
_L15:
        int k = 0;
        if(!flag) goto _L17; else goto _L16
_L16:
        nc nc2 = (nc)vector.elementAt(k);
        nc2.g();
        k++;
_L17:
        if(k >= vector.size())
            return;
        if(true) goto _L16; else goto _L18
_L18:
    }

    public synchronized Vector a(String s)
    {
        boolean flag = tb.b;
        Vector vector = null;
        for(int i = 0; i < a.length; i++)
        {
            Object obj = a[i];
            do
            {
                String s1 = ((lt) (obj)).z();
                if(s1.equals(s))
                {
                    if(vector == null)
                        vector = new Vector();
                    vector.addElement(a[i]);
                    if(!flag)
                        break;
                }
                if(s1.equals(z[0]) && !flag)
                    break;
                obj = (lt)b.get(s1);
            } while(obj != null);
        }

        return vector;
    }

    public Vector b(String s)
    {
        Vector vector = c.d(s);
        if(vector == null)
            return null;
        else
            return (Vector)vector.clone();
    }

    public aq a()
    {
        aq aq1;
        int i;
        boolean flag;
        flag = tb.b;
        aq1 = new aq();
        i = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        aq1.b(a[i].j());
        i++;
_L2:
        if(i >= a.length)
            return aq1;
        if(true) goto _L1; else goto _L3
_L3:
    }

    private static String z(char[] chs) {
        byte key;
        for (int i = 0; i < chs.length; i++) {
            switch (i % 5) {
                case 0:
                    key = 0x6a;
                    break;
                case 1:
                    key = 7;
                    break;
                case 2:
                    key = 107;
                    break;
                case 3:
                    key = 121;
                    break;
                default:
                    key = 39;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static 
    {
        String as[];
        as = new String[3];
        as[0] = "\000f\035\030\b\006f\005\036\b%e\001\034D\036";
        as[1] = "Jp\003\020K\017'\031\034F\016n\005\036\007";
        as[2] = "Dd\007\030T\031";
        for(int i = 0;i<as.length;i++){
            as[i] = z(as[i].toCharArray());
        }
        z = as;

    }
}